package com.swiftops.common.service;

import com.swiftops.common.model.TokenModel;
import com.swiftops.common.model.User;

/**
 * 对Token进行操作的接口
 */
public interface TokenService {

    /**
     * 创建一个token关联上指定用户
     *
     * @return 生成的token
     */
    TokenModel createToken(User user);

    /**
     * 重新获取Token
     *
     * @param refreshToken tokenType_userId_refreshToken
     * @return 返回结果
     */
    TokenModel refreshToken(String refreshToken);

    /**
     * 检查token是否有效
     *
     * @param model token
     * @return 是否有效
     */
    boolean checkToken(TokenModel model);

    /**
     * 从字符串中解析token
     *
     * @param token 加密后的字符串
     * @return
     */
    TokenModel getTokenModel(String token);

    /**
     * 删除token
     *
     * @param token
     * @return
     */
    boolean deleteToken(String token);
}
